package uy.com.pzit.fpmundialmodel.manager;

import uy.com.pzit.fpmundialmodel.dao.MundialDAO;
import uy.com.pzit.fpmundialmodel.domain.Eliminatoria;
import uy.com.pzit.fpmundialmodel.domain.Mundial;
import uy.com.pzit.fpmundialmodel.domain.PaisEnCompeticion;
import uy.com.pzit.fpmundialmodel.response.MessageManager;
import uy.com.pzit.fpmundialmodel.response.MundialResponse;

public class MundialManager {

	private MundialDAO mundialDAO;
	private PaisEnCompeticionManager paisCompManager;
	private EliminatoriaManager eliminatoriaManager;

	
	

	public Mundial newMundial(Mundial mundial) {
		for(Eliminatoria e:mundial.getEliminatorias()){
			for(PaisEnCompeticion p:e.getPaises()){
				paisCompManager.addPais(p);
			}
			eliminatoriaManager.addEliminatoria(e);
		}
		return mundialDAO.addMundial(mundial);
	}
	

	/**
	 * @param mundialDAO the mundialDAO to set
	 */
	public void setMundialDAO(MundialDAO mundialDAO) {
		this.mundialDAO = mundialDAO;
	}


	public void setPaisCompManager(PaisEnCompeticionManager paisCompManager) {
		this.paisCompManager = paisCompManager;
	}


	public void setEliminatoriaManager(EliminatoriaManager eliminatoriaManager) {
		this.eliminatoriaManager = eliminatoriaManager;
	}


	public Mundial updateMundial(Mundial mundial) {
		return mundialDAO.updateMundial(mundial);
	}


	public MundialResponse getMundialById(int idMundial) {
			Mundial mundial=mundialDAO.getMundialById(idMundial);
			MundialResponse response=new MundialResponse();
			if(mundial!=null){
				response.setMundial(mundial);
				response.setMessage("");
				response.setSuccess(true);
			}else{
				response.setSuccess(false);
				response.setMessage(MessageManager.getInstance().getMessage("worldCupNotFound"));
			}
			return response;
	}

	public MundialResponse getMundialEnCurso() {
		Mundial mundial=mundialDAO.getLastMundial();
		MundialResponse response=new MundialResponse();
		if(mundial!=null){
			response.setMundial(mundial);
			response.setMessage("");
			response.setSuccess(true);
		}else{
			response.setSuccess(false);
			response.setMessage(MessageManager.getInstance().getMessage("worldCupNotFound"));
		}
		return response;
}


	public boolean checkMundialEnCurso() {
		
		return mundialDAO.checkMundialEnCurso();
	}


	
	
	
}
